package cl.edinet.agencialinea3.ejb.service;

import cl.aperture.commons.ValidationException;
import cl.edinet.agencialinea3.ejb.bean.parametro.ParametroAelUsuario;
import cl.edinet.agencialinea3.ejb.bean.parametro.ParametroDeclaracion;
import cl.edinet.agencialinea3.ejb.bean.parametro.ParametroDocumento;
import cl.edinet.agencialinea3.ejb.entity.*;
import cl.edinet.agencialinea3.ejb.enums.EnumTipoUsuario;
import java.math.BigDecimal;
import java.sql.Connection;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author Iván Zúñiga & Tomás Quinteros
 */
@Remote
public interface AgenciaLineaServiceRemote {

    public List<Declaracion> getDeclaraciones(ParametroDeclaracion parametros)  throws ValidationException;
    
    public List<AelUsuario> getAelUsuarios(ParametroAelUsuario parametros)throws ValidationException;
    
    public List<Documento> getDocumentos(ParametroDocumento parametros);

    public List<Importador> getImportadores();
    
    public List<AelUsuario> getAelUsuarios();

    public Importador getImportador(BigDecimal idImportador);
    
    public AelUsuario getAelUsuario(BigDecimal idAelUsuario);     
    
    public int contarDeclaraciones(ParametroDeclaracion parametroDeclaracion)  throws ValidationException;
      
    public int contarDocumentos(ParametroDocumento parametroDocumento);    
        
    public Documento getDocumentoByNumeroDespacho(BigDecimal numeroDespacho, boolean isIncluideItems);

    public Declaracion getDeclaracionByNumeroDespacho(BigDecimal numeroDespacho, boolean isIncluideItems);

    public AelUsuario getUsuarioLogin(String usuario, String clave);

    public BigDecimal generateIdSolicitudRegistro();

    public void createSolicitudRegistro(AelSolicitudRegistro solicitudRegistro);

    public AelAgencia getAgenciaByRut(Integer rut);

    public Importador getImportadorByRut(String rut);

    public BigDecimal generateIdSolicitudAcceso();

    public void createSolicitudAcceso(AelSolicitudAcceso solicitudAcceso);

    public BigDecimal generateIdUsuario();

    public AelTipoUsuario getTipoUsuario(EnumTipoUsuario enumTipoUsuario);

    public void createUsuario(AelUsuario usuario);

    public void createAgencia(AelAgencia agencia);

    public int contarAelUsuarios(ParametroAelUsuario parametroAelUsuario) throws ValidationException;

    public AelEntidad getEntidad(BigDecimal idEntidad);

    public void editUsuario(AelUsuario usuario);

    public AelUsuario getUsuarioByRut(String rut);

    public AelUsuario getUsuarioByNik(String nik);


    

  
   
   
}
